package isec.amov.tp2.automaintenance;

import java.util.Calendar;

public class Detalhe {
	
	private int id = -1;
	private double oleo = -1;
	private int inspAno = -1;
	private int inspMes = -1;
	private int inspDia = -1;
	private double filtroMotor = -1;
	private double pastilhas = -1;
	
	final static int maxYear = 2099;
	final static double maxQuilometros = 5000000;
	 
	public Detalhe(){
		
	}
	
	//Constructor
	public Detalhe(int id, double oleo, int ano, int mes, int dia, double filtroMotor, double pastilhas) {
		setId(id);
		setOleo(oleo);
		setAno(ano);
		setMes(mes);
		setDia(dia);
		setFiltroMotor(filtroMotor);
		setPastilhas(pastilhas);
	}

	/**
	 * @return the oleo
	 */
	public double getOleo() {
		return oleo;
	}

	/**
	 * @param the oleo to set
	 */
	public void setOleo(double oleo) {
		if(oleo > 0 && oleo < maxQuilometros) {
			this.oleo = oleo;
		}
	}
	

	/**
	 * @return the inspAno
	 */
	public int getAno() {
		return inspAno;
	}

	/**
	 * @param ano the inspAno to set
	 */
	public void setAno(int ano) {
		int currentYear = Calendar.getInstance().get(Calendar.YEAR);
		if (ano >= currentYear && ano <= maxYear) {
			this.inspAno = ano;
		}
	}

	/**
	 * @return the inspMes
	 */
	public int getMes() {
		return inspMes;
	}

	/**
	 * @param mes the inspMes to set
	 */
	public void setMes(int mes) {
		if (mes >= 1 && mes <= 12) {
			this.inspMes = mes;
		}
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		if(id > 0) {
			this.id = id;
		}
	}

	/**
	 * @return the filtroMotor
	 */
	public double getFiltroMotor() {
		return filtroMotor;
	}

	/**
	 * @param filtroMotor the filtroMotor to set
	 */
	public void setFiltroMotor(double filtroMotor) {
		if(filtroMotor > 0 && filtroMotor < maxQuilometros){
			this.filtroMotor = filtroMotor;
		}
	}

	/**
	 * @return the pastilhas
	 */
	public double getPastilhas() {
		return pastilhas;
	}

	/**
	 * @param pastilhas the pastilhas to set
	 */
	public void setPastilhas(double pastilhas) {
		if(pastilhas > 0 && pastilhas < maxQuilometros){
			this.pastilhas = pastilhas;
		}
	}

	/**
	 * @return the inspDia
	 */
	public int getDia() {
		return inspDia;
	}

	/**
	 * @param inspDia the inspDia to set
	 */
	public void setDia(int dia) {
		Calendar calendar = Calendar.getInstance();
		int maxDay = -1;
		
		if (inspAno != -1 && inspMes != -1) {
			calendar.set(inspAno, inspMes, 1);
			maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
			
			if(dia >= 1 && dia <= maxDay) {
				this.inspDia = dia;
			}	
		}
	}


}
